package com.ddwl.schema.vo.gate.kuaiDi100;

import io.swagger.annotations.ApiModel;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

import java.util.List;

/**
 * @Author hemiaojun
 * @Date 2021/10/12 11:32
 */
@ApiModel("实时查询vo")
@Getter
@Setter
public class QueryTrackVo {

    /**
     * 消息体，请忽略
     */
    private String message;
    /**
     * 快递单号
     */
    private String nu;
    /**
     * 是否签收标记
     */
    private String ischeck;
    /**
     * 	快递公司编码,一律用小写字母
     */
    private String com;
    /**
     * 通讯状态
     */
    private String status;
    /**
     * 轨迹详情数组
     */
    private List<QueryTrackData> data;
    /**
     * 快递单当前状态，包括0在途，1揽收，2疑难，3签收，4退签，5派件，6退回，7转投，10待清关，11清关中，12已清关，13清关异常，14拒签 等13个状态
     */
    private String state;
    /**
     * 快递单明细状态标记
     */
    private String condition;

    private QueryTrackRouteInfo routeInfo;
    /**
     * 查不到轨迹或者其他问题返回码
     */
    private String returnCode;
    /**
     * 查不到轨迹或者其他问题返回结果
     */
    private Boolean result;

    private String addr;


    @Getter
    @Setter
    @NoArgsConstructor
    public static class QueryTrackData{

        /**
         * 时间，原始格式
         */
        private String time;
        /**
         * 物流轨迹节点内容
         */
        private String context;
        /**
         * 格式化后时间
         */
        private String ftime;
        /**
         * 行政区域的编码
         */
        private String areaCode;
        /**
         * 行政区域的名称
         */
        private String areaName;
        /**
         * 签收状态 (0在途，1揽收，2疑难，3签收，4退签，5派件，6退回，7转投)
         */
        private String status;

    }

    @Getter
    @Setter
    @NoArgsConstructor
    private static class QueryTrackRouteInfo{
        /**
         * 出发位置
         */
        private QueryTrackPosition from;
        /**
         * 当前位置
         */
        private QueryTrackPosition cur;
        /**
         * 收货地
         */
        private QueryTrackPosition to;

        @Getter
        @Setter
        @NoArgsConstructor
        public static class QueryTrackPosition{
            /**
             * 地址编码
             */
            private String number;
            /**
             * 地址名称
             */
            private String name;
        }
    }


}
